7 Upgrades per Item Table:
Quiver:		0x00000001,0x00000002,0x00000004
Bomb Bag:	0x00000008,0x00000010,0x00000020
Strength:	0x00000040,0x00000080,0x00000100
Dive Meter: 0x00000200,0x00000400,0x00000800
Wallet:		0x00001000,0x00002000,0x00004000
Bullet Bag:	0x00008000,0x00010000,0x00020000
Deku Stick:	0x00040000,0x00080000,0x00100000
Deku Nut:	0x00200000,0x00400000,0x00800000


var equipment = 0x00555555;
var ID = 0; (This is equipment ID!)
var shiftedID = ID<<1;
var filter = 0x3<<shiftedID;
var upgrade = equipment&filter;
var shiftedUpgrade = upgrade>>shiftedID;
console.log(shiftedUpgrade);

(0x3<<(ID<<1)).toString(16)

Best Upgrades = 0036E4DB
Lowest Upgrades = 0x00555555

Sword		Shield		Tunic
Wallet		Bullet Bag	Bomb Bag
Quiver		Strength	Scale		

3 Upgrades per Item Table:
0	Quiver:		0x00000001,0x00000002,0x00000003
1	Bomb Bag:	0x00000004,0x00000008,0x0000000C
2	Strength:	0x00000010,0x00000020,0x00000030
3	Dive Meter: 0x00000040,0x00000080,0x000000C0
4	Wallet:		0x00000100,0x00000200,0x00000300
5	Bullet Bag:	0x00000400,0x00000800,0x00000C00
6	Deku Stick:	0x00001000,0x00002000,0x00003000
7	Deku Nut:	0x00004000,0x00008000,0x0000C000
8	Sword:		0x00010000,0x00020000,0x00030000
9	Shield:		0x00040000,0x00080000,0x000C0000
A	Tunic:		0x00100000,0x00200000,0x00300000
B	Boots:		0x00400000,0x00800000,0x00C00000
C	???:		0x01000000,0x02000000,0x03000000
D	???:		0x04000000,0x08000000,0x0C000000
E	???:		0x10000000,0x20000000,0x30000000
F	???:		0x40000000,0x80000000,0xC0000000
Default:		0x00500000

08090A04 05010002 03000000
3A3D4055 464C494F 52000000

;_______________________________
;REPLACE EQUIPMENT SYSTEM
;This part will change the ammo
;display to use the new system.
;_______________________________

;A2 = Pointer to Item Slot ID
.org 0x80089E8C	;Start code here instead?
	LBU		V1, 0x0000(A2)			;V1 = Item Slot ID
	LUI		T3, 0x8012				;T3 = 0x80120000
	ADDIU	T5, R0, 0x0006			;T5 = 0x0006 (Deku Stick Upgrade ID)
	BEQL	V1, R0, _pt1_checked	;Branch Likely if item is Deku Stick
		ADDIU T3, T3, 0x0030			;T3 = 0x80120000+Deku Stick Offset
	ADDIU	T5, R0, 0x0007			;T5 = 0x0007 (Deku Nut Upgrade ID)
	ADDIU	T4, R0, 0x0001			;T4 = 0x1 (Deku Nut)
	BEQL	V1, T4, _pt1_checked	;Branch Likely if item is Deku Nut
		ADDIU T3, T3, 0x0038			;T3 = 0x80120000+Deku Nut Offset
	ADDIU	T5, R0, 0x0001			;T5 = 0x0001 (Bomb BagUpgrade ID)
	ADDIU	T4, R0, 0x0002			;T4 = 0x2 (Bomb)
	BEQL	V1, T4, _pt1_checked	;Branch Likely if item is Bomb
		ADDIU T3, T3, 0x0008			;T3 = 0x80120000+Bomb Offset
	ADDIU	T5, R0, 0x0000			;T5 = 0x0000 (Quiver Upgrade ID)
	ADDIU	T4, R0, 0x0003			;T4 = 0x3 (Fairy Bow)
	BEQL	V1, T4, _pt1_checked	;Branch Likely if item is Fairy Bow
		ADDIU T3, T3, 0x0000			;T3 = 0x80120000+Fairy Bow Offset
	ADDIU	T5, R0, 0x0005			;T5 = 0x0005 (Bullet Bag Upgrade ID)
	ADDIU	T4, R0, 0x0006			;T4 = 0x6 (Fairy Slingshot)
	BEQL	V1, T4, _pt1_checked	;Branch Likely if item is Fairy Slingshot
		ADDIU T3, T3, 0x0028			;T3 = 0x80120000+Fairy Slingshot Offset
	ADDIU	T4, R0, 0x0008			;T4 = 0x8 (Bombchu)
	BEQL	V1, T4, _pt1_setCap		;Branch Likely if item is Bombchu
		ADDIU T3, R0, 0x0032			;T3 = 50
	ADDIU	T4, R0, 0x000E			;T4 = 0xE (Magic Beans)
	BEQL	V1, T4, _pt1_setCap		;Branch Likely if item is Magic Beans
		ADDIU T3, R0, 0x000F			;T3 = 15
	BEQ		R0, R0, 0x8008A048		;If none of above, skip past capacity check
	NOP
	;V1 = Item Slot ID
	;T3 = 0x80120000+Item Offset
	;T5 = Upgrade ID
	;Must add Capacity Entry Offset to T3
	_pt1_checked:
	SLL		T5, T5, 0x0001			;T5 = UpgradeID<<1		(shiftedID)
	ADDIU	V0, R0, 0x0003			;V0 = 0x3
	SLLV	V0, V0, T5				;V0 = 0x3<<shiftedID 	(mask)
	LW		T4, 0x00A0(A3)			;T4 = equipment			(equipment)
	AND		V0, T4, V0				;V0 = equipment&mask	(upgrade)
	SRAV	V0, V0, T5				;V0 = upgrade>>shiftedID(shiftedUpgrade)
	SLL		T5, V0, 0x0001			;T5 = shiftedUpgrade<<1	(capacityEntry)
	ADDU	T3, T3, T5				;T3 = 0x80120000+Item Offset+capacityEntry
	LHU		T3, 0x71FC(T3)			;T3 = Item Capacity
	_pt1_setCap:
	ADDU	T6, A3, V1				;T6 = 0x8015E660+Item Slot ID
	LB		V1, 0x008C(T6)			;V1 = Ammunition
	BEQ		T3, V1, 0x8008A020		;If you have maxed your ammo, branch
	NOP
	BEQ		R0, R0, 0x8008A048	;End
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	

;_______________________________
;REPLACE EQUIPMENT SYSTEM
;This will change the set ammo
;function to use the new system.
;_______________________________

;0x80087330 Set Ammo Function
;0x80087350 Get Ammo Slot
;0x80087678 Function Ends here

;START:
;T1 = 8015E660
;GOAL:
;T5 = Ammo Slot

;BEQ R0, R0, 0x80087658 when you have above capacity
;Also store Max ammo to 0x008C(V0)
;Branch to 0x8008765C when you have more than 0 ammo and load item slot ID to T5
;If you have less than 0 ammo, branch to 0x80087658 and set 0x008C(V0) to 0.

;T2 = Pointer to Item Slot ID
;A3 = Ammo to add/remove
;can use T1, T3, T4, T5, T6, T7, T8, T9
;A2 is changed to T2
;A3 is changed to T1
;V0 is changed to T7
;V1 is changed to T2
.org 0x80087384
	LH		A3, 0x0026(SP)			;ADDED ROW (A3 = Ammo to add/remove)
	LUI		T1, 0x8015				;ADDED ROW (T1 = 0x80150000)
	ORI		T1, T1, 0xE660			;ADDED ROW (T1 = 0x8015E660)
	LBU		T2, 0x0000(T2)			;T2 = Item Slot ID
	LUI		T3, 0x8012				;T3 = 0x80120000
	ADDIU	T5, R0, 0x0006			;T5 = 0x0006 (Deku Stick Upgrade ID)
	BEQL	T2, R0, _pt2_checked	;Branch Likely if item is Deku Stick
		ADDIU T3, T3, 0x0030			;T3 = 0x80120000+Deku Stick Offset
	ADDIU	T5, R0, 0x0007			;T5 = 0x0007 (Deku Nut Upgrade ID)
	ADDIU	T4, R0, 0x0001			;T4 = 0x1 (Deku Nut)
	BEQL	T2, T4, _pt2_checked	;Branch Likely if item is Deku Nut
		ADDIU T3, T3, 0x0038			;T3 = 0x80120000+Deku Nut Offset
	ADDIU	T5, R0, 0x0001			;T5 = 0x0001 (Bomb BagUpgrade ID)
	ADDIU	T4, R0, 0x0002			;T4 = 0x2 (Bomb)
	BEQL	T2, T4, _pt2_checked	;Branch Likely if item is Bomb
		ADDIU T3, T3, 0x0008			;T3 = 0x80120000+Bomb Offset
	ADDIU	T5, R0, 0x0000			;T5 = 0x0000 (Quiver Upgrade ID)
	ADDIU	T4, R0, 0x0003			;T4 = 0x3 (Fairy Bow)
	BEQL	T2, T4, _pt2_checked	;Branch Likely if item is Fairy Bow
		ADDIU T3, T3, 0x0000			;T3 = 0x80120000+Fairy Bow Offset
	ADDIU	T5, R0, 0x0005			;T5 = 0x0005 (Bullet Bag Upgrade ID)
	ADDIU	T4, R0, 0x0006			;T4 = 0x6 (Fairy Slingshot)
	BEQL	T2, T4, _pt2_checked	;Branch Likely if item is Fairy Slingshot
		ADDIU T3, T3, 0x0028			;T3 = 0x80120000+Fairy Slingshot Offset
	ADDIU	T4, R0, 0x0008			;T4 = 0x8 (Bombchu)
	BEQL	T2, T4, _pt2_calcCap	;Branch Likely if item is Bombchu
		ADDIU T3, R0, 0x0032			;T3 = 50
	ADDIU	T4, R0, 0x000E			;T4 = 0xE (Magic Beans)
	BEQL	T2, T4, _pt2_calcCap	;Branch Likely if item is Magic Beans
		ADDIU T3, R0, 0x000F			;T3 = 15
	BEQ		R0, R0, 0x8008A048		;If none of above, skip past capacity check
	NOP
	;T2 = Item Slot ID
	;T3 = 0x80120000+Item Offset
	;T5 = Upgrade ID
	;Must add Capacity Entry Offset to T3
	_pt2_checked:
	SLL		T5, T5, 0x0001			;T5 = UpgradeID<<1		(shiftedID)
	ADDIU	T7, R0, 0x0003			;T7 = 0x3
	SLLV	T7, T7, T5				;T7 = 0x3<<shiftedID 	(mask)
	LW		T4, 0x00A0(T1)			;T4 = equipment			(equipment)
	AND		T7, T4, T7				;T7 = equipment&mask	(upgrade)
	SRAV	T7, T7, T5				;T7 = upgrade>>shiftedID(shiftedUpgrade)
	SLL		T5, T7, 0x0001			;T5 = shiftedUpgrade<<1	(capacityEntry)
	ADDU	T3, T3, T5				;T3 = 0x80120000+Item Offset+capacityEntry
	LHU		T3, 0x71FC(T3)			;T3 = Item Capacity
	_pt2_calcCap:
	ADDU	T5, T2, R0				;ADDED ROW (T5 = Ammo Slot)
	ADDU	T6, T1, T2				;T6 = 0x8015E660+Item Slot ID
	LB		T2, 0x008C(T6)			;T2 = Ammo
	;All below this is added commands
	ADDU	T2, T2, A3				;T2 = New Ammo
	BLTZL	T2, _pt2_setCap			;Branch Likely if new ammo is less than 0
		ADDU	T2, R0, R0				;T2 = 0 (New Ammo)
	SLT		T4,	T2, T3				;Set T4 if your new ammo count is less than capacity
	BEQL	T4, R0, _pt2_setCap		;Brach Likely if new ammo isn't less than capacity
		ADDIU	T2, T3, 0x0000			;T2 = Item Capacity (New Ammo)
	_pt2_setCap:
	SB		T2, 0x008C(T6)			;Store new ammo
	BEQ		R0, R0, 0x8008765C		;New end branch
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

;_______________________________
;REPLACE EQUIPMENT SYSTEM
;This will make the wallet use
;the new system.
;_______________________________

;Fix Max Wallet Size Check
.org 0x8008AE14 
	ANDI	T4, T2, 0x0300		;T6 = Upgrade Word AND Wallet Mask
.org 0x8008AE1C 
	SRL		T6, T4, 0x0008		;T6 = Masked Upgrade >> 0x8
;Fix Wallet Digit Length Check
.org 0x8008AF80
	ANDI	T6, T4, 0x0300		;T6 = Upgrade Word AND Wallet Mask
	SRL		V0, T6, 0x0008		;V0 = Masked Upgrade >> 0x8

;_______________________________
;REPLACE EQUIPMENT SYSTEM
;This will make the strength
;upgrade use the new system.
;_______________________________
ADULT VERSION
.org 0x8008F684
	NOP							;Remove child/adult branch for strength & boots upgrades. 
.org 0x8008F69C
	ANDI	T7, T5, 0x0030		;Upgrade Word AND Strength Mask
	SRA		A1, T7, 0x0004		;Masked Upgrade >> 0x4
.org 0x8008F71C
	LUI		T7, 0x0601			;T7 = 0x06010000
	ADDIU	T7, T7, 0x6118		;T7 = 0x06016118
	

;CHILD VERSION v2
.org 0x8008F684
	BNEZL	T8, 0x8008F7D0		;Branch to Boots section if your child instead of strength upgrade
	LW		A2, 0x00A0(SP)		;Set A2 to currently equipped boots
.org 0x8008F7D8
	BEQ		A2, R0, 0x8008F830	;Change branch to include child strength upgrade after boots
.org 0x8008F818
	BEQ		R0, R0, 0x8008F830	;Change branch to include child strength upgrade after boots

;CHILD VERSION
.org 0x8008F054
	ANDI	T8, T6, 0x0030		;Upgrade Word AND Strength Mask
.org 0x8008F05C
	SRA		V1, T8, 0x0004		;Masked Upgrade >> 0x4
	
;_______________________________
;REPLACE EQUIPMENT SYSTEM
;This will make the shield,
;boots and tunic update function
;uses the new system.
;_______________________________

;0x8008ECAC Update equipped Equipment

.org 0x8008ECDC
	LW		T7, 0x00A0(V0)		;T7 = Equipment
	LUI		T8, 0x000C			;T8 = 0x000C0000 (Shield Mask)
	ADDIU	A0, A0, 0x71F0		;Already there
	ADDIU	T0, R0, 0x0012		;T0 = 0x0012 (Shift steps)
	
.org 0x8008ECFC
	LW		T2, 0x00A0(V0)		;T2 = Equipment
	LUI		T3, 0x0030			;T3 = 0x00300000 (Tunic Mask)
	ADDIU	T5, R0, 0x0014		;T5 = 0x0016 (Shift steps)
	
.org 0x8008ED18
	LUI		T9, 0x00C0			;T9 = 0x00C00000 (Boots Mask)
	LW		T8, 0x00A0(V0)		;T8 = Equipment
	ADDIU	T1, R0, 0x0016		;T1 = 0x0016 (Shift Steps)
	
_______________________________
REPLACE EQUIPMENT SYSTEM END
_______________________________
	
;Equipment Screen
	
.org 0x803E6110
	ADDU	T9, R0, R0			;
	
.org 0x803E6474
	ADDU	T7, R0, R0			;
	
.org 0x803D7020
	ADDU	T4, R0, R0
	
.org 0x803E3DB8
	ADDU	T6, R0, R0
	
.org 0x803D6DCC
	ADDU	V0, R0, R0

;0x801271FC = Quiver
;0x80127204 = Bomb Bag
;0x8012720C = Unused
;0x80127214 = Unused
;0x8012721C = Wallet
;0x80127224 = Bullet Bag
;0x8012722C = Deku Sticks
;0x80127234 = Deku Nuts

	
80127204 bomb bag capacity table
	
;A1 = 801271F4 (Item upgrade Mask table)
.org 0x80089F00

.org 0x80089F08 ;Get bomb bag upgrade

0x80089EFC			;Check if you're using Bomb Ammo

0x80089D40 Check if C item has Ammo
0x80127464 Item Ammo


80089E94
80127464 Item Ammo Slot Table


80089D8C
80089D44